/*
 * ColeccionDeBytes_gtest.h
 *
 *  Created on: 08/12/2012
 *      Author: d
 */

#ifndef COLECCIONDEBYTES_GTEST_H_
#define COLECCIONDEBYTES_GTEST_H_

#include "../physical_layer/compresorGammaElias/ColeccionDeBytes.h"
#include "../physical_layer/compresorGammaElias/Compresor.h"
#include "../physical_layer/compresorGammaElias/ColeccionDeBits.h"
#include "../physical_layer/compresorGammaElias/Byte.h"

class ColeccionDeByteTestFixture: public testing::Test {
public:
	//ColeccionDeByteTestFixture();

    void SetUp()
    {
    }

    void TearDown()
    {
    }

	//virtual ~ColeccionDeByteTestFixture();
};


TEST_F( ColeccionDeByteTestFixture, PruebaDelMetodoNormalizar)
{
			ColeccionDeBytes* coleccionDeBytes=new ColeccionDeBytes();
			ColeccionDeBits* coleccionDeBits=new ColeccionDeBits();
			Compresor* compresor1=new Compresor(255);
			ColeccionDeBits* codificacionEnBits1=compresor1->comprimir();
			Compresor* compresor2=new Compresor(127);
			ColeccionDeBits* codificacionEnBits2=compresor2->comprimir();
			coleccionDeBits->concatenarCon(codificacionEnBits1);
			coleccionDeBits->concatenarCon(codificacionEnBits2);
			
			ASSERT_EQ(codificacionEnBits2->tamanio(),24);

			coleccionDeBytes->normalizar(coleccionDeBits);
			
			Byte* byte1=coleccionDeBytes->obtener(0);
			Byte* byte2=coleccionDeBytes->obtener(1);
			Byte* byte3=coleccionDeBytes->obtener(2);
			Byte* byte4=coleccionDeBytes->obtener(3);

			
			ASSERT_EQ(byte1->obtenerRepresentacionDecimal(),63);
			ASSERT_EQ(byte2->obtenerRepresentacionDecimal(),239);
			ASSERT_EQ(byte3->obtenerRepresentacionDecimal(),7);
			ASSERT_EQ(byte4->obtenerRepresentacionDecimal(),63);

}


#endif /* COLECCIONDEBYTES_GTEST_H_ */
